package br.urca.model;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "Solicitacao")
public class Solicitacao implements Serializable {

	private static final long serialVersionUID = 1L;
	
	@EmbeddedId
	private SolicitacaoPK id;
	
	@Column(name = "Quant", columnDefinition = "INT(4)")
	private Integer quantidade;
	
	@Column(name = "Valor")
	private Double valor;
	
	@Column(name = "DataRec")
	@Temporal(TemporalType.DATE)
	private Date dataRec;
	
	@Column(name = "Compl", columnDefinition = "VARCHAR(150)")
	private String complemento;
	
	
	@OneToOne
	@JoinColumn(name = "Situa", columnDefinition = "VARCHAR(2)")
	private StatusProtocolo situacao;
	
	@Column(name = "PeriodoConclusao", columnDefinition = "VARCHAR(5)")
	private String periodoConclusao;
	
	@Deprecated public Solicitacao() { }

	public Solicitacao(SolicitacaoPK id, Integer quantidade, Double valor,
			Date dataRec, String complemento, StatusProtocolo situacao,
			String periodoConclusao) {
		super();
		this.id = id;
		this.quantidade = quantidade;
		this.valor = valor;
		this.dataRec = dataRec;
		this.complemento = complemento;
		this.situacao = situacao;
		this.periodoConclusao = periodoConclusao;
	}

	public SolicitacaoPK getId() {
		return id;
	}

	public void setId(SolicitacaoPK id) {
		this.id = id;
	}

	public Integer getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(Integer quantidade) {
		this.quantidade = quantidade;
	}

	public Double getValor() {
		return valor;
	}

	public void setValor(Double valor) {
		this.valor = valor;
	}

	public Date getDataRec() {
		return dataRec;
	}

	public void setDataRec(Date dataRec) {
		this.dataRec = dataRec;
	}

	public String getComplemento() {
		return complemento;
	}

	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}

	public StatusProtocolo getSituacao() {
		return situacao;
	}

	public void setSituacao(StatusProtocolo situacao) {
		this.situacao = situacao;
	}

	public String getPeriodoConclusao() {
		return periodoConclusao;
	}

	public void setPeriodoConclusao(String periodoConclusao) {
		this.periodoConclusao = periodoConclusao;
	}
	
}
